import psutil
import os

def close_all_python_processes():
    """关闭所有 Python 进程（排除当前脚本）"""
    current_pid = os.getpid()  # 获取当前脚本的 PID
    python_processes = []

    # 遍历所有运行的进程，找到 python.exe 或 pythonw.exe
    for proc in psutil.process_iter(['pid', 'name']):
        try:
            proc_name = proc.info['name'].lower()
            if 'python' in proc_name and proc.info['pid'] != current_pid:
                python_processes.append(proc)
        except (psutil.NoSuchProcess, psutil.AccessDenied):
            continue

    # 关闭所有找到的 Python 进程
    for proc in python_processes:
        try:
            proc.terminate()  # 先尝试正常终止
            proc.wait(timeout=3)  # 等待 3 秒
        except (psutil.NoSuchProcess, psutil.TimeoutExpired):
            proc.kill()  # 如果未关闭，强制杀死
        print(f"已关闭 Python 进程 (PID: {proc.info['pid']})")

    if not python_processes:
        print("未找到其他 Python 进程（当前进程已排除）")


close_all_python_processes()